/**
 * 格式化日期为指定格式的字符串
 * @param date Date实例对象,默认为当前时间
 * @param format 格式化字符串,默认为'yyyy-MM-dd hh:mm:ss'
 * @returns 格式化后的时间字符串
 */
export function formatDate(
  format: string = 'yyyy-MM-dd hh:mm:ss',
  date: Date = new Date(),
): string {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  const second = date.getSeconds()

  // 补零函数
  const padZero = (num: number): string => {
    return num < 10 ? `0${num}` : `${num}`
  }

  // 替换格式化字符串中的占位符
  return format
    .replace('yyyy', year.toString())
    .replace('MM', padZero(month))
    .replace('dd', padZero(day))
    .replace('hh', padZero(hour))
    .replace('mm', padZero(minute))
    .replace('ss', padZero(second))
}

// 使用示例:
// console.log(formatDate()); // 输出当前时间: "2024-01-15 14:30:45"
// console.log(formatDate(new Date(), 'yyyy年MM月dd日')); // 输出: "2024年01月15日"
// console.log(formatDate(new Date('2024-01-15'), 'hh:mm:ss')); // 输出: "14:30:45"
